import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { viteMockServe } from 'vite-plugin-mock'

// https://vitejs.dev/config/
export default defineConfig(({ command }) => {
  return {
    plugins: [
      vue(),
      viteMockServe({
        ignore: /^_/,
        mockPath: './mock', // 解析根目录下的mock文件夹
        localEnabled: command === 'serve', // 开发打包开关
        prodEnabled: false, // 生产打包开关
        //supportTs: false, // 打开后，可以读取 ts 文件模块。 请注意，打开后将无法监视.js 文件
        watchFiles: true, // 监视文件更改
        // 这样可以控制关闭mock的时候不让mock打包到最终代码内
        // injectCode: `
        //       import { setupProdMockServer } from './mock/index.js';
        //       setupProdMockServer();
        //       `,
        logger: false // 是否在控制台显示请求日志
      })
    ],
    server: {
      port: 3000,
      cors: {
        origin: '*', //Access-Control-Allow-Origin
        methods: 'GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS', //Access-Control-Allow-Methods
        allowedHeaders: ['Content-Disposition'], //Access-Control-Allow-Headers
        exposedHeaders: ['Content-Disposition'], //Access-Control-Expose-Headers
        // credentials: true, //Access-Control-Allow-Credentials
        preflightContinue: true, //将CORS飞行前响应传递给下一个处理程序。
        optionsSuccessStatus: 204 // OPTIONS
      }, //为开发服务器配置 CORS , 默认启用并允许任何源
      headers: {
        'access-control-allow-origin': '*',
        'access-control-allow-methods': 'GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS',
        'access-control-allow-headers': 'Content-Disposition',
        'access-control-expose-headers': 'Content-Disposition' //一定要有！！！否则Post请求无法进行跨域！
      },
      proxy: {
        '^/zlwx': {
          target: 'http://localhost:7071',
          changeOrigin: true
        }
      }
    }
  }
})
